package com.lookme.lmtool.cracker.annotation;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * 图像过滤器与图像分割器属性的注解类
 * @author blake
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface ParamAnnotation {
    /**
     * @return 参数名称
     */
    String name();

    /**
     * @return 参数编辑器类型
     */
    InputType inputType() default InputType.Text;

    /**
     * @return 参数备注信息
     */
    String desc();

    /**
     * @return 编辑器宽度
     */
    int width() default 100;

    /**
     * @return 最小值  如果编辑器为Spinner 或 Slider 时有效
     */
    double min() default 0;

    /**
     * @return 最大值  如果编辑器为Spinner 或 Slider 时有效
     */
    double max() default 100;

    /**
     * @return 初始值 如果编辑器为Spinner 或 Slider 时有效
     */
    double initialValue() default 1;

    /**
     * @return 阶值 如果编辑器为Spinner 或 Slider 时有效
     */
    double amountToStepBy() default 1;


    /**
     * 刻度
     * @return 刻度数量
     */
    int blockIncrement() default 10;
    int majorTickUnit() default 25;
    int minorTickCount() default 3;

    /**
     * @return 编辑器的边缘空白
     */
    int[] margin() default {0,0,0,0};

    String[] options() default {"是","true","否","false"};




    /**
     * 输入控件类型
     */
    public enum InputType{
        /**
         * 文本框
         */
        Text,
        /**
         * 下拉框
         */
        Combox,
        /**
         * 单选框
         */
        Radio,
        /**
         * 数字微调控件
         */
        Spinner,
        /**
         *滑动条
         */
        Slider,
        /**
         * 颜色选择控件
         */
        ColorPicker
    }
}
